package cn.xinfei.xdecision.common.model.component.scorecard.vo;

import cn.xinfei.xdecision.common.model.component.scorecard.Scorecard;
import cn.xinfei.xdecision.common.model.component.strategyout.StrategyOutput;
import cn.xinfei.xdecision.common.utils.enums.enginex.ComponentStatusEnum;
import cn.xinfei.xdecision.common.utils.enums.enginex.ComponentVersionStatusEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ScorecardVo extends Scorecard implements Serializable {
    private static final long serialVersionUID = 4920595561931964004L;


    @ApiModelProperty("最新版本")
    private Long lastVersion;

    private String lastVersionDesc;

    @ApiModelProperty("规则code")
    private String code;

    /**
     * @see ComponentVersionStatusEnum
     */
    @ApiModelProperty("最新版本状态")
    private Integer lastVersionStatus;

    @ApiModelProperty("最新版本状态描述")
    private String lastVersionStatusDesc;

    /**
     * @see ComponentStatusEnum
     */
    @ApiModelProperty("评分卡状态")
    private Integer status;

    @ApiModelProperty("评分卡状态描述")
    private String statusDesc;

    @ApiModelProperty("版本说明")
    private String versionDesc;

    @ApiModelProperty("更新人姓名")
    private String updatedUserName;

    @ApiModelProperty("评分卡名称")
    private String name;

    @ApiModelProperty("评分卡描述")
    private String description;

    @ApiModelProperty("是否存在新建版本")
    private Boolean isNewVersion = Boolean.FALSE;

    @ApiModelProperty("维度")
    private List<ScorecardDimensionVo> scorecardDimension;

    @ApiModelProperty("自定义输出字段")
    private List<StrategyOutput> strategyOutputList;

    @ApiModelProperty("版本列表")
    private List<ScorecardVersionVo> versionList;

//     多余字段,删除
//    private Long checkedId;
}
